package arraylist01;
/*
*ArrayList类中的方法：
*   boolean add(E e)
*         将指定的元素添加到此列表的尾部。
*  void add(int index, E element)
          将指定的元素插入此列表中的指定位置。
* E get(int index)
          返回此列表中指定位置上的元素。
*  E set(int index, E element)
          用指定的元素替代此列表中指定位置上的元素。
* E remove(int index)
          删除指定索引位置的元素，返回要删除的元素。
*/

import java.util.ArrayList;

public class ArrayListDemo01 {
    public static void main(String[] args) {
        //method01();
        //method2();
        //method03();
        ArrayList<String> al4 = new ArrayList<String>();
        al4.add("张无忌");
        al4.add("赵敏");
        al4.add("周芷若");
        String str4 = al4.remove(2);//
        // 删除指定索引位置的元素，返回要删除的元素
        System.out.println(str4); // 周芷若
        System.out.println(al4); // [张无忌, 赵敏]

    }

    private static void method03() {
        ArrayList<String> al3 = new ArrayList<String>();
        al3.add("张无忌");
        al3.add("赵敏");
        al3.add("周芷若");
        String str3 = al3.set(1, "灭绝师太");
        // set()方法设置索引位置上的元素，返回的是原有位置的元素
        // 执行完set方法会将指定元素替换指定索引位置元素

        System.out.println(str3); //  赵敏
        System.out.println(al3); // [张无忌, 灭绝师太, 周芷若]
    }

    private static void method2() {
        ArrayList<String> al2 = new ArrayList<String>();
        al2.add("张无忌");
        al2.add("赵敏");
        al2.add("周芷若");
        String str = al2.get(1);
        // 因为get返回值是泛型E，此时泛型类型是String类型，
        // 所以需要一个String类型的引用来接收

        System.out.println(str); // 赵敏
        System.out.println(al2.get(2)); // 周芷若
    }

    private static void method01() {
        ArrayList<String> al = new ArrayList<String>();
        al.add("abc");
        al.add("efg");
        System.out.println(al); // [abc, efg]

        al.add(1,"hk"); // 将hk元素添加到集合的1索引位置
        System.out.println(al); // [abc, hk, efg]
        al.add(0,"ll");
        System.out.println(al); // [ll, abc, hk, efg]
    }
}

